package com.chagee.store.operation.server.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.time.LocalDate;
import java.util.Date;

/**
 * 门店表
 */
@EqualsAndHashCode(callSuper = true)
@Data
@TableName("store")
public class StoreDO extends BaseDO implements Serializable {

	@TableId(type = IdType.AUTO)
	private Long id;

	// 主数据ID
	private String dataCenterCode;

	/**
	 * 门店状态
	 * @see com.chagee.store.operation.api.event.enums.StoreStatusEnum
	 */
	private String storeStatus;

	// 闭店类型 当 storeStatus 为 closed_store 时可选，1迁址 2永久闭店
	private Integer storeClosureType;
	// 门店编号
	private String storeNo;

	// 门店名称
	private String storeName;

	/**
	 * 门店性质
	 * @see com.chagee.store.operation.api.event.enums.StoreCategoryEnum
	 */
	private String storeCategory;

	// 是否是内部 当 storeCategory 为 ZY 时可选， 0否，1是
	private Integer innerFlag;

	/**
	 * 经营状态 0营业中 1已打烊
	 * @see com.chagee.store.operation.api.event.enums.StoreBusinessStatusEnum
	 */
	private Integer businessStatus;

//	private Date businessStartDate;
//	private Date businessEndDate;
	// 营业时间 json
	private String businessTime;

	/**
	 * 门店类型 门店类型 BZV2 2.0标准店，CGV3 3.0常规店，QJV3 3.0旗舰店，CSZTV3 3.0城市主题店，ZTYFV3 3.0主题研发店
	 * @see com.chagee.store.operation.api.event.enums.StoreTypeEnum
	 */
	private String storeType;

	// 所属子公司组织ID
	private String companyId;

	// 所属子公司名称
	private String companyName;

	// 所属部门组织ID
	private Long deptId;

	// 所属部门名称
	private String deptName;

	// 加盟商
	private String businessName;
	// 加盟商id
	private String businessId;

	// 开店教练编号
	private String openInstructorNo;

	// 开店教练名称
	private String openInstructorName;

	// 运营教练编号
	private String instructorNo;

	// 运营教练名称
	private String instructorName;

	// 运营专员编号
	private String coordinatorNo;

	// 运营专员名称
	private String coordinatorName;

	// 预计开业日期
	private LocalDate preOpenStoreDate;

	// 开业日期
	private Date openStoreDate;

	// 试营业日期
	private Date poiltOpenDate;

	/**
	 * 设备线类型 0 手动线 ，1 自动线，2 手自一体线，3 自动线3.0
	 * @see com.chagee.store.operation.api.event.enums.DeviceLineTypeEnum
	 */
	private Integer deviceLineType;

	// 行政区域
	private String region;

	// 地址
	private String address;

	// 门店状态辅助排序字段
	private Integer storeStatusSort;

	//	三方打烊任务状态  0禁用 1启用
	private Integer closingTaskStatus;

	// 门店 0门店1企迈
	private Integer shutoutTouchSource;

	/**
	 * 闭店状态
	 * 临时闭店中时，支持门店进行逆向流程，若门店通过逆向流程状态变更为：已停业，则无法通过工单中的临时闭店结束时间，状态恢复至：正式开业，状态保持已停业、已闭店状态不变；
	 * 临时闭店中时，门店自检工单、三方打烊工单将不会自动创建；
	 * OPEN 营业
	 * TEMP_CLOSE 临时闭店中
	 */
	private String closureStatus;

	private String tag;

}
